<!DOCTYPE html>
<html>
  <title>
    Test that all event handlers are called when a remote playback device is connected
  </title>
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
  <script src="/common/media.js"></script>
  <script>
    setup({ explicit_timeout: true });
  </script>
  <body>
    <div id="prep">
      <p>Please make sure a device for remote playback is <b>available.</b></p>
      <button id="prompt-button-prep">Show devices</button>
      <button id="start-button">Start test</button>
    </div>
    <div id="pick-device" style="display: none">
      <p>
        Click the button below to prompt for a remote playback device and select
        one! After connecting to the device, please click again and disconnect
        from device.
      </p>
      <button id="prompt-button">Pick device</button>
      <button id="disconnect-button" style="display: none">
        Disconnect device
      </button>
    </div>
  </body>
  <script src="./prepare-device.js"></script>
  <script>
    let v = document.createElement("video");
    v.src = getVideoURI("/media/movie_5");

    async_test(t => {
      let promptButton = document.getElementById("prompt-button");
      let disconnectButton = document.getElementById("disconnect-button");

      const w = new EventWatcher(t, v.remote, ['connecting', 'connect', 'disconnect']);
      w.wait_for(['connecting', 'connect', 'disconnect']).then(t.step_func_done());

      promptButton.onclick = () => {
        promise_test(() => {
          return v.remote.prompt().then(() => {
            promptButton.style.display = "none";
            disconnectButton.style.display = "inline";
          });
        }, "Prompt to connect to the device");
      };

      disconnectButton.onclick = () => {
        promise_test(() => {
          return v.remote.prompt()
        }, "Prompt to disconnect from the device")
      };
    }, "Test that all event handlers are called when a remote playback device is connected.");
  </script>
</html>
